home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 2000 February / Macworld (2000-02).dmg / Games World / Top 12 Shareware / ExaChess_Lite 2.1 / ExaChess Tools / Engines / ZZZZZZ ReadMe < prev   
Text File  |  1999-11-10  |  7KB  |  218 lines

  1.  
  2. ZZZZZZ Chess 3.3
  3.  
  4. © G. Weisenekker
  5. Mac port by Rolf Exner
  6.  
  7. Released under the Gnu license.
  8.  
  9. Introduction
  10.  
  11. ZZZZZZ is a chess program developed by G. Weisenekker and released under
  12. the GNU licence. This version for the Mac was ported by R. Exner, and is the
  13. third such version.
  14.  
  15. As released by G. Wiesenekker, it can be compiled for Unix, DOS, or MAC.
  16. However it is packaged as a test program for running tests in batch mode, 
  17. and has no real user interface. Most communications is through files - 
  18. files to read the run-time arguments, files to read the starting position,
  19. files to write test results to.
  20.  
  21. I have added a simple text-based user interface to permit more normal 
  22. operation as a chess program. I have also added support for the 'CHES'
  23. Apple Event suite to allow programs like ExaChess to use ZZZZZZ as a 
  24. chess engine. Used in this manner, the chess board is controlled by 
  25. ExaChess and the simple text-based interface of ZZZZZZ is adequate.
  26.  
  27.  
  28. Changes in release 3.3
  29.  
  30. ZZZZZZ can now parse ++ for checkmate, 0-0+ etc.
  31.  
  32.  
  33. Changes in release 3.2
  34.  
  35. Added support for ExaChess chess engine interface version 2.0 (includes
  36. setting time controls, analysis, game termination)
  37.  
  38. Searching can now be terminated by Cmd-period (rather than Option);
  39. Cmd-period no longer quits ZZZZZZ.
  40.  
  41.  
  42. ZZZZZZ Commands
  43.  
  44. If you launch ZZZZZZ by double clicking it, you get a console window into
  45. which you can type commands. ZZZZZZ will not automatically play a game.
  46. You need to tell it to 'go' to have it search for a move and play it.
  47.  
  48. The following commands are available:
  49.  
  50. <return> (or 'board')
  51.   Display the current board. The board is displayed as follows:
  52.  
  53.    r n b q k b n r
  54.    p p p p p p p p
  55.    . . . . . . . .
  56.    . . . . . . . .
  57.    . . . . . . . .
  58.    . . . . . . . .
  59.    P P P P P P P P
  60.    R N B Q K B N R  W
  61.  
  62. Lower case letters denote Black pieces, upper case letters White pieces.
  63. The side to move is shown after the last square.
  64.  
  65. <moves>
  66.   Entering one or more moves, with or without move numbers, will result
  67.   in those moves being applied to ZZZZZZ's board. Moves should be in
  68.   English algebraic notation with correct capitalization (e.g. Nf3 not
  69.   nf3). If move numbers are given ZZZZZZ will take back moves as necessary 
  70.   to reset its move counter to the move number entered. 
  71.   e.g.
  72.      1 e4 e5 2 Nf3
  73.      2... Nc6
  74.  
  75. - (or 'back')
  76.   Take back the last move
  77.  
  78. game
  79.   List the moves made since the game started.
  80.  
  81. go
  82.   Search for the best move and make it. You can force the immediate end to a 
  83.   long search by typing Command-period.
  84.  
  85. help
  86.   Display a summary of available commands
  87.  
  88. newgame
  89.   Reset the board to the standard starting position
  90.  
  91. setboard <position>
  92.   Set the board to a custom startup position. <position> is given in Forsyth notation,
  93.   which is a one-line representation of the board, scanned by row starting with a8-h8, 
  94.   followed by a7-h7, etc. to a1-h1. For each row, denote Black pieces by prnbqk, White 
  95.   pieces by PRNBQK, and empty squares by an integer 1 to 8 (being the number of 
  96.   consecutive empty squares). Use a comma or slash to separate rows, and enclose 
  97.   the whole string in slashes. 
  98.   For example, the standard starting position itself is
  99.     rnbqkbnr,pppppppp,8,8,8,8,PPPPPPPP,RNBQKBNR
  100.  
  101.   A position entered in this way is assumed to have White-to-move, both sides with 
  102.   maximum possible castling rights, and no en passant square. To override these 
  103.   defaults, append up to three terms to the above string, separated with commas: 
  104.   ‘white’ or ‘black’, the castling rights as a 4-character string ‘KQkq’ (White 
  105.   kingside, queenside, Black kingside, queenside respectively) with forfeited rights 
  106.   replaced by a ‘-’, and the en passant square. For example, after the initial moves 
  107.   1 e4 d5 2 Ke2 de 3 d4, White has lost the right to castle Kingside and Queenside 
  108.   and d3 is the en passant square, and so the position is
  109.     rnbqkbnr,ppp1pppp,8,8,3Pp3,8,PPP1KPPP,RNBQ1BNR,black,--kq,d3
  110.  
  111. set <param> <value>
  112.   Set the named parameter to the value given.  ZZZZZZ supports the following 
  113.   parameters:
  114.  
  115.       echo
  116.           - if 1, echo a copy of all screen output to the file zzlog 
  117.       maxdepth
  118.           - maximum search depth, in ply 
  119.       resign
  120.           - if 1, allow ZZZZZZ to resign when in a bad position 
  121.       timelimit
  122.           - the time limit in seconds for a search
  123.       usebook
  124.           - if 1, use the opening book; if 0, don’t use the opening book
  125.       verbose
  126.           - if 1, display search progress and stats when searching
  127.   
  128.   e.g. to set the timelimit to 15 seconds response time per move:
  129.      set timelimit 15
  130.  
  131. show [<param>]
  132.   Show the value of the named parameter, or if no parameter is given, the
  133.   value of all parameters. 
  134.  
  135. quit (or 'q')
  136.   Exit the program
  137.  
  138.      
  139. Startup file
  140.  
  141. If there is a file called zzstartup in the same directory as ZZZZZZ, it will
  142. read this file and process commands in it before fetching commands from
  143. the console. Use this file to set options such as the default timelimit, or
  144. a special startup position or partial game.
  145.  
  146. You can also place a complete test script into this file to have ZZZZZZ
  147. run the test script with a minimum of user interaction. (You can also
  148. to this via the Apple Event interface). If the last command in the file
  149. is quit, then ZZZZZZ will quit without ever requesting input from the 
  150. console.
  151.  
  152.  
  153. Opening book
  154.  
  155. The opening book with which ZZZZZZ plays is found in encoded form in the
  156. resources BOOK 0 (White) and BOOK 1 (Black) in its resource fork. 
  157.  
  158. To create a new book, place the file zzbook.txt in the same directory as
  159. ZZZZZZ and start ZZZZZZ. When it starts up, it looks for this file, and if
  160. found, processes it to create a file zzbook into which it puts the BOOK 0 and
  161. BOOK1 resources. You need to manually paste these resources into ZZZZZZ to
  162. have it use the newly generated book.
  163.  
  164. The zzbook.txt file uses the same format as GNUChess, and the supplied file 
  165. is the same as the Nunn book provided with GNUChess3. It is not included in 
  166. this distribution. The format of this book is as follows:
  167.  
  168. g1f3 b7b5 g2g3 e7e6 a2a4 b5b4 b2b3 c8b7 f1g2 f7f5 c1b2 g8f6 d2d3 b8a6 f3h4
  169. !
  170. g1f3 g7g6 g2g3 f8g7 f1g2 e7e5 e2e4 b8c6 d2d3 d7d6  o-o g8e7 b1d2  o-o c2c3 h7h6
  171. !
  172. g1f3 f7f5 g2g3 g8f6 f1g2 e7e6 d2d3 f8e7  o-o  o-o b1d2 d7d6 e2e4 f5e4
  173. !
  174.  
  175. When building the book ZZZZZZ will check whether the entered line results in a
  176. material loss which is not immediately returned (i.e. a probable gambit). Any such lines
  177. are rejected.
  178.  
  179.  
  180. Stats
  181.  
  182. time=time_used
  183. stats=ngens, ndos, nevals, nhits, nextends
  184.  
  185. ngens = number of times the set of moves is generated
  186. ndos = number of times domove is called on a legal move
  187. nevals = number of times evaluation routines are called
  188. nhits = number of times transposition cache holds evaluation instead
  189. nextends = ??
  190.  
  191.  
  192. Scripting
  193.  
  194. ZZZZZZ is scriptable using Apple’s scripting system. Here is a small
  195. script to demonstrate ZZZZZZ’s scripting capabilities:
  196.  
  197. tell application "ZZZZZZ"
  198.     new game
  199.     move "1 e4 e5 2 Nf3 Nc6 3 Bb5 a6"
  200.     move "2… Nf6"    
  201.   search ""
  202. end tell 
  203.  
  204.  
  205. Porting Notes
  206.  
  207. To build the Mac release, you need the following files from the zzzzzz 
  208. distribution:
  209.     zzzzzz.c
  210.     zzzzzz.h 
  211. plus the following files for the Mac port:
  212.     ChessEvents.c
  213.     main.c
  214.     zzglue.c
  215. Contact R. Exner (r.exner@exachess.com) for a copy of these files.
  216.  
  217.  
  218.